home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Python 1.3.3 / Python 133 SRC / Demo / www / wwwutil.py < prev    next >
Text File  |  1996-03-12  |  1KB  |  59 lines

  1. # Utilities shared by www.py and wwww.py
  2.  
  3. import os
  4. import wwwlib
  5. import marshal
  6.  
  7.  
  8. # Determine the absolute address of system and user home
  9. system_home = wwwlib.WWW_HOME
  10. system_home = wwwlib.full_addr('file:', system_home)
  11. user_home = system_home
  12. if os.environ.has_key('WWW_HOME'):
  13.     user_home = os.environ['WWW_HOME']
  14.     user_home = wwwlib.full_addr('file:', user_home)
  15.  
  16.  
  17. # Load some object from a file
  18. def load_file(user_name, default_name):
  19.     name = user_name
  20.     if not name:
  21.         name = default_name
  22.         if os.environ.has_key('HOME'):
  23.             name = os.path.join(os.environ['HOME'], name)
  24.     #
  25.     try:
  26.         f = open(name, 'r')
  27.         contents = marshal.load(f)
  28.         f.close()
  29.         return contents
  30.     except IOError, msg:
  31.         if user_name:
  32.             print user_name, ':', msg
  33.         return None
  34.  
  35.  
  36. # Save some object on a file
  37. def save_file(contents, user_name, default_name):
  38.     name = user_name
  39.     if not name:
  40.         name = default_name
  41.         if os.environ.has_key('HOME'):
  42.             name = os.path.join(os.environ['HOME'], name)
  43.     #
  44.     if os.path.exists(name):
  45.         try:
  46.             os.unlink(name + '~')
  47.         except os.error:
  48.             pass
  49.         try:
  50.             os.rename(name, name + '~')
  51.         except os.error, msg:
  52.             print 'Failed to back-up', `name`, ':', msg
  53.     try:
  54.         f = open(name, 'w')
  55.         marshal.dump(contents, f)
  56.         f.close()
  57.     except IOError, msg:
  58.         print name, ':', msg
  59.